home *** CD-ROM | disk | FTP | other *** search
- //: C25:SingletonPattern.cpp
- // From Thinking in C++, 2nd Edition
- // Available at http://www.BruceEckel.com
- // (c) Bruce Eckel 1999
- // Copyright notice in Copyright.txt
- #include <iostream>
- using namespace std;
-
- class Singleton {
- static Singleton s;
- int i;
- Singleton(int x) : i(x) { }
- void operator=(Singleton&);
- Singleton(const Singleton&);
- public:
- static Singleton& getHandle() {
- return s;
- }
- int getValue() { return i; }
- void setValue(int x) { i = x; }
- };
-
- Singleton Singleton::s(47);
-
- int main() {
- Singleton& s = Singleton::getHandle();
- cout << s.getValue() << endl;
- Singleton& s2 = Singleton::getHandle();
- s2.setValue(9);
- cout << s.getValue() << endl;
- } ///:~
-